import Vue from 'vue'
import VueRouter from 'vue-router'
// import store from '@/store'
import * as hooks from './hooks'

// 自动化导入指定目录下面的文件
// 让webpack去在routes目录下面不递归的去查找.js结尾的文件,返回一个函数
const moduleFn = require.context('./routes', false, /\.js$/)
// 函数中绑定一个静态方法 keys 返回刚刚得到的文件列表 数组
const routes = moduleFn.keys().reduce((prev, curr) => {
  let tmp = moduleFn(curr).default
  if ('push' in tmp) { // 判断变量是否为数组
    prev.push(...moduleFn(curr).default)
  } else {
    prev.push(moduleFn(curr).default)
  }
  return prev
}, [])



Vue.use(VueRouter)

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

// 导航守卫
// 全局导航前置守卫
/* router.beforeEach((to, from, next) => {
  // 要显示的路由
  let bool = ['/films', '/cinemas', '/news', '/center'].some(item => new RegExp('^' + item).test(to.path))
  // 让vuex中修改对应的状态
  store.commit('setIsshow', bool)

  next()
}) */

/* for (let key in hooks) {
  router.beforeEach(hooks[key])
} */
Object.keys(hooks).forEach(key => router.beforeEach(hooks[key]))



export default router
